

module.exports = function (io, User, Info) {

  
  var onlines = 0
  io.sockets.on('connection', function (socket) {
    Info.find({}, function (err, infos) {
      //  新用户获取数据
      socket.on('get infos', function () {
        socket.emit('set infos', {infos: infos})
      })

      //  每一个用户登陆，向所有在线用户更新在线人数
      socket.on('new user login', function (data) {
        onlines++
        socket.broadcast.emit('new user come in', {onlines: onlines})
        socket.emit('new user come in', {onlines: onlines})
      })
      //  用户下线在, 向所有在线用户更新在线人数
      socket.on('disconnect', function () {
        socket.broadcast.emit('new user come in', {onlines: --onlines})
      })


      //  用户发送信息，将信息添加到信息列表，并广播信息
      socket.on('new info', function (data) {
        User.findOne({user: data.user}, function (err, user) {
          if (err) return;
          data.faceImg = user.faceImg;
          var info = new Info(data)
          info.save(function (err, info) {
            socket.broadcast.emit('new info', data)
            socket.emit('new info', data)
          })
        })
      })
    })
  })
}